package com.wasion.core.db.orm;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;

/**
 * 
 * @ClassName: BaseDBHelper
 * @Description: 手机内存数据库助手类（data/data）
 * @author 高意
 * @date 2014年7月23日 上午10:40:35
 * 
 */
public class BaseDBHelper extends SQLiteOpenHelper {

	/** The model classes. */
	private Class<?>[] modelClasses;

	/**
	 * 初始化一个BaseDBHelper.
	 * 
	 * @param context
	 *            应用context
	 * @param name
	 *            数据库名
	 * @param factory
	 *            数据库查询的游标工厂
	 * @param version
	 *            数据库的新版本号
	 * @param modelClasses
	 *            要初始化的表的对象
	 */
	public BaseDBHelper(Context context, String name, CursorFactory factory,
			int version, Class<?>[] modelClasses) {
		super(context, name, factory, version);
		this.modelClasses = modelClasses;
	}

	/**
	 * 描述：表的创建.
	 * 
	 * @param db
	 *            数据库对象
	 */
	public void onCreate(SQLiteDatabase db) {
		BaseTableHelper.createTablesByClasses(db, this.modelClasses);
	}

	/**
	 * 描述：表的重建.
	 * 
	 * @param db
	 *            数据库对象
	 * @param oldVersion
	 *            旧版本号
	 * @param newVersion
	 *            新版本号
	 */
	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
		BaseTableHelper.dropTablesByClasses(db, this.modelClasses);
		onCreate(db);
	}
}
